package co.com.inversiones.xyz.ltda.dao.impl;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import co.com.inversiones.xyz.ltda.dao.RolDao;
import co.com.inversiones.xyz.ltda.dto.Rol;
import co.com.inversiones.xyz.ltda.exception.DaoException;

public class RolDaoImpl extends HibernateDaoSupport implements RolDao{

	 /**
     * Metodo que inserta un nuevo Rol en la base de datos
     * @param encuesta
     * @throws DaoException 
     */
	@Override
	public void guardarRol(Rol rol) throws DaoException {
		       
        Session sesion = null;
        
        try {
            sesion = getSession();

            sesion.save(rol);

            
        } catch (HibernateException e) {

            throw new DaoException("Error Guardando el Rol de codigo: " + rol.getIdRol(), e);

        } 
		
	}
	
	/**
     * Metodo que consulta un Rol por su id 
     * @param id
     * @return los datos del rol
     * @throws DaoException 
     */

	@Override
	public Rol getRol(int id) throws DaoException {
		
		Rol rol = new Rol();

        Session sesion = null;
        try {
            sesion = getSession();

            rol = (Rol) sesion.createCriteria(Rol.class).add(Restrictions.eq("idRol", id)).uniqueResult();
        } catch (HibernateException e) {
            throw new DaoException("Error consultado Rol: " + id, e);
        } 

        return rol;
        
	}

}
